Bienvenue à la leçon 7, où nous introduisons le transfert d'apprentissage. Cette technique consiste à réutiliser un modèle d'apprentissage profond déjà entraîné sur un grand jeu de données général (comme ImageNet) et à l'adapter pour résoudre une nouvelle tâche spécifique (comme notre défi FoodVision). Elle est essentielle pour atteindre des résultats de pointe de manière efficace, surtout lorsque les jeux de données étiquetés sont limités.
1. La puissance des poids pré-entraînés
Les réseaux neuronaux profonds apprennent les caractéristiques de manière hiérarchique. Les couches inférieures apprennent des concepts fondamentaux (bords, coins, textures), tandis que les couches plus profondes combinent ces éléments en concepts complexes (yeux, roues, objets spécifiques). La clé de l'insight est que les caractéristiques fondamentales apprises au début sont universellement applicables dans la plupart des domaines visuels.
Composants du transfert d'apprentissage
- Tâche source : Entraînement sur 14 millions d'images et 1000 catégories (par exemple, ImageNet).
- Tâche cible : Adaptation des poids pour classer un jeu de données bien plus petit (par exemple, nos catégories spécifiques FoodVision).
- Composant exploité : La grande majorité des paramètres du réseau — les couches d'extraction de caractéristiques — sont réutilisées directement.
Run code to inspect active tensors
The Input Feature size must match the output of the frozen base layer.
Size: 512.
The output size of 512 is the input, and the class count 7 is the output.
Code:
new_layer = torch.nn.Linear(512, 7)The Output Feature size must match the number of target classes.
Size: 7.